from setuptools import setup, find_packages
import os
from glob import glob

package_name = 'echokitbot_microros_voice'

setup(
    name=package_name,
    version='1.0.0',
    packages=find_packages(exclude=['test']),
    data_files=[
        ('share/ament_index/resource_index/packages',
            ['resource/' + package_name]),
        ('share/' + package_name, ['package.xml']),
        (os.path.join('share', package_name, 'launch'), glob('launch/*.launch.py')),
        (os.path.join('share', package_name, 'config'), glob('config/*.yaml')),
        (os.path.join('share', package_name, 'msg'), glob('msg/*.msg')),
        (os.path.join('share', package_name, 'srv'), glob('srv/*.srv')),
    ],
    install_requires=[
        'setuptools',
        'websockets>=11.0',
        'opencv-python>=4.5.0',
        'numpy>=1.21.0',
        'Pillow>=8.0.0',
        'aiohttp>=3.8.0',
        'aiofiles>=0.8.0',
        'python-multipart>=0.0.5',
        'cozepy>=0.20.0',
        # ESP32 Camera System Dependencies
        'psutil>=5.8.0',
        'ping3>=4.0.0',
        'asyncio-mqtt>=0.11.0',
        # Video Stream Processing Dependencies
        'cv_bridge',
    ],
    zip_safe=True,
    maintainer='Wordsworth华子',
    maintainer_email='developer@echokitbot.com',
    description='EchokitBot Voice Control System for micro-ROS Architecture',
    license='Apache-2.0',
    tests_require=['pytest'],
    entry_points={
        'console_scripts': [
            'voice_control_node = echokitbot_microros_voice.llm_bridge_voice_control_node:main',
            'llm_bridge_voice_control_node = echokitbot_microros_voice.llm_bridge_voice_control_node:main',
            'smart_voice_processor = echokitbot_microros_voice.smart_voice_processor:main',
            'enhanced_angle_voice_processor = echokitbot_microros_voice.enhanced_angle_voice_processor:main',
            'llm_enhanced_voice_processor = echokitbot_microros_voice.llm_enhanced_voice_processor:main',
            'system_monitor = echokitbot_microros_voice.system_monitor:main',
            # Vision interaction nodes
            'video_stream_processor = echokitbot_microros_voice.video_stream_processor:main',
            'vision_interaction_node = echokitbot_microros_voice.vision_interaction_node:main',
            'coze_api_client = echokitbot_microros_voice.coze_api_client:main',
            'local_vision_model = echokitbot_microros_voice.local_vision_model:main',
            # ESP32 Camera System nodes
            'esp32_camera_driver = echokitbot_microros_voice.esp32_camera_driver:main',
            'esp32_camera_node = echokitbot_microros_voice.esp32_camera_node:main',
            'vision_coze_node = echokitbot_microros_voice.vision_coze_node:main',
            'video_stream_server = echokitbot_microros_voice.video_stream_server:main',
            'network_manager = echokitbot_microros_voice.network_manager:main',
            'esp32_camera_system = echokitbot_microros_voice.esp32_camera_system:main',
            # EchoKit Server Integration
            'echokit_ros2_bridge = echokitbot_microros_voice.echokit_ros2_bridge:main',
            'vision_status_manager = echokitbot_microros_voice.vision_status_manager:main',
            # Voice-Vision Integration
            'voice_vision_integration = echokitbot_microros_voice.voice_vision_integration:main',
        ],
    },
)